package com.sansi.bleFloodlight.model;

import java.util.List;

public class DeviceConfigureResponse {


    /**
     * defaultName : Floodlight
     * description : Floodlight
     * manufacturer : Sansi
     * colorModel : rgb
     * willReportState : true
     * colorTemperatureRange : {"temperatureMinK":2700,"temperatureMaxK":6500}
     * traits : ["onOff","brightness","color","colorTemperature","increaseBrightness","decreaseBrightness","increaseColorTemperature","decreaseColorTemperature","internalScene"]
     * internalScene : [{"id":"1","name":"Red-Green Gradient","isDefault":true,"isCycle":true,"isGradient":true,"gradientTime":500,"stateMap":[{"color":{"r":255,"g":0,"b":0},"brightness":100,"interval":2000},{"color":{"r":0,"g":255,"b":0},"brightness":100,"interval":2000}]},{"id":"2","name":"Red-Blue Gradient","isDefault":true,"isCycle":true,"isGradient":true,"gradientTime":500,"stateMap":[{"color":{"r":255,"g":0,"b":0},"brightness":100,"interval":2000},{"color":{"r":0,"g":0,"b":255},"brightness":100,"interval":2000}]},{"id":"3","name":"Colorful Gradient","isDefault":true,"isCycle":true,"isGradient":true,"gradientTime":500,"stateMap":[{"color":{"r":255,"g":0,"b":0},"brightness":100,"interval":2000},{"color":{"r":255,"g":120,"b":0},"brightness":100,"interval":2000},{"color":{"r":255,"g":255,"b":0},"brightness":100,"interval":2000},{"color":{"r":0,"g":255,"b":0},"brightness":100,"interval":2000},{"color":{"r":0,"g":255,"b":255},"brightness":100,"interval":2000},{"color":{"r":0,"g":0,"b":255},"brightness":100,"interval":2000},{"color":{"r":255,"g":0,"b":255},"brightness":100,"interval":2000}]}]
     */

    private String defaultName;
    private String description;
    private String manufacturer;
    private String colorModel;
    private boolean willReportState;
    private ColorTemperatureRangeBean colorTemperatureRange;
    private List<String> traits;
    private List<InternalSceneBean> internalScene;

    public String getDefaultName() {
        return defaultName;
    }

    public void setDefaultName(String defaultName) {
        this.defaultName = defaultName;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getColorModel() {
        return colorModel;
    }

    public void setColorModel(String colorModel) {
        this.colorModel = colorModel;
    }

    public boolean isWillReportState() {
        return willReportState;
    }

    public void setWillReportState(boolean willReportState) {
        this.willReportState = willReportState;
    }

    public ColorTemperatureRangeBean getColorTemperatureRange() {
        return colorTemperatureRange;
    }

    public void setColorTemperatureRange(ColorTemperatureRangeBean colorTemperatureRange) {
        this.colorTemperatureRange = colorTemperatureRange;
    }

    public List<String> getTraits() {
        return traits;
    }

    public void setTraits(List<String> traits) {
        this.traits = traits;
    }

    public List<InternalSceneBean> getInternalScene() {
        return internalScene;
    }

    public void setInternalScene(List<InternalSceneBean> internalScene) {
        this.internalScene = internalScene;
    }

    public static class ColorTemperatureRangeBean {
        /**
         * temperatureMinK : 2700
         * temperatureMaxK : 6500
         */

        private int temperatureMinK;
        private int temperatureMaxK;

        public int getTemperatureMinK() {
            return temperatureMinK;
        }

        public void setTemperatureMinK(int temperatureMinK) {
            this.temperatureMinK = temperatureMinK;
        }

        public int getTemperatureMaxK() {
            return temperatureMaxK;
        }

        public void setTemperatureMaxK(int temperatureMaxK) {
            this.temperatureMaxK = temperatureMaxK;
        }
    }

    public static class InternalSceneBean {
        /**
         * id : 1
         * name : Red-Green Gradient
         * isDefault : true
         * isCycle : true
         * isGradient : true
         * gradientTime : 500
         * stateMap : [{"color":{"r":255,"g":0,"b":0},"brightness":100,"interval":2000},{"color":{"r":0,"g":255,"b":0},"brightness":100,"interval":2000}]
         */

        private String id;
        private String name;
        private boolean isDefault;
        private boolean isCycle;
        private boolean isGradient;
        private int gradientTime;
        private List<StateMapBean> stateMap;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public boolean isIsDefault() {
            return isDefault;
        }

        public void setIsDefault(boolean isDefault) {
            this.isDefault = isDefault;
        }

        public boolean isIsCycle() {
            return isCycle;
        }

        public void setIsCycle(boolean isCycle) {
            this.isCycle = isCycle;
        }

        public boolean isIsGradient() {
            return isGradient;
        }

        public void setIsGradient(boolean isGradient) {
            this.isGradient = isGradient;
        }

        public int getGradientTime() {
            return gradientTime;
        }

        public void setGradientTime(int gradientTime) {
            this.gradientTime = gradientTime;
        }

        public List<StateMapBean> getStateMap() {
            return stateMap;
        }

        public void setStateMap(List<StateMapBean> stateMap) {
            this.stateMap = stateMap;
        }

        public static class StateMapBean {
            /**
             * color : {"r":255,"g":0,"b":0}
             * brightness : 100
             * interval : 2000
             */

            private ColorBean color;
            private int brightness;
            private int interval;

            public ColorBean getColor() {
                return color;
            }

            public void setColor(ColorBean color) {
                this.color = color;
            }

            public int getBrightness() {
                return brightness;
            }

            public void setBrightness(int brightness) {
                this.brightness = brightness;
            }

            public int getInterval() {
                return interval;
            }

            public void setInterval(int interval) {
                this.interval = interval;
            }

            public static class ColorBean {
                /**
                 * r : 255
                 * g : 0
                 * b : 0
                 */

                private int r;
                private int g;
                private int b;

                public int getR() {
                    return r;
                }

                public void setR(int r) {
                    this.r = r;
                }

                public int getG() {
                    return g;
                }

                public void setG(int g) {
                    this.g = g;
                }

                public int getB() {
                    return b;
                }

                public void setB(int b) {
                    this.b = b;
                }
            }
        }
    }
}
